การสร้างรหัสผ่านเข้าสู่ระบบระหว่างทำการสร้าง EC2 Instance โดยใช้ UserData
สวัสดีเพื่อนๆ ชาว AWS Service ทุกท่านด้วยครับ ผมป๊อปครับ
ในบทความนี้ผมได้เขียนอธิบายเกี่ยวกับ การสร้างรหัสผ่านเข้าสู่ระบบระหว่างทำการสร้าง EC2 Instance โดยใช้ UserData ครับ เข้าไปดูกันเลย
สร้างรหัสผ่านเข้าสู่ระบบระหว่างทำการสร้าง EC2 Instance โดยใช้ UserData
มาที่เมนูด้านซ้าย เลือกInstances
คลิกLaunch instances
Step 1: Choose an Amazon Machine Image (AMI) คือ Instance จะมีเซิร์ฟเวอร์ให้เลือกใช้มากมาย เช่น macOS, Red Hat, SUSE Linux, Ubuntu, Microsoft Windows, Debian เป็นต้น ซึ่งในบล็อกนี้จะใช้ Amazon Linux 2 AMI (HVM) ในการติดตั้ง
» Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type คลิกSelect
Step 2: Choose an Instance Type คือ เราสามารถเลือก Type CPU Memory ที่จะนำไปใช้งานได้ตามความต้องการ ไม่ว่าเว็บไซต์จะมีขนาดเล็กหรือขนาดใหญ่ ก็สามารถเลือกขนาดความจุของ CPU Memory ได้ตามความเหมาะสม
» เลือก ■ Family => t3a
| Type => t3a.nano
| vCPUs => 2
| Memory => 0.5
(สามารถเลือกใช้งานได้ตามความต้องการ)
» คลิกNext: Configure Instance Details
Step 3: Configure Instance Details
» เลื่อนลงมาด้านล่างสุดที่หัวข้อ User data จากนั้นคัดลอก Code ด้านล่างนี้วางในช่องว่าง และเปลี่ยน your_password ให้เป็นรหัสของคุณ เช่นtest2022
เป็นต้น
#cloud-config password: your_password chpasswd: { expire: False } ssh_pwauth: True
» คลิกNext: Add Storage
Step 4: Add Storage คือ ในส่วนของ Size (GiB) เราสามารถเพิ่ม Storage ได้ โดยค่าเริ่มต้นจะเป็น 8GB
» คลิกNext: Add Tags
Step 5: Add Tags » คลิกAdd Tage
» Key:Name
| Value:tinnakorn-password-auth
(ใส่ชื่ออะไรก็ได้)
» คลิกNext: Configure Security Group
Step 6: Configure Security Group คือ การตั้งค่า My IP เพื่อจำกัดการเชื่อมต่อ SSH จากทุกตำแหน่ง ซึ่งในส่วนนี้จะทำให้สามารถเชื่อมต่อ SSH จาก My IP (ที่อยู่ IP ปัจจุบันของคุณ) ได้เท่านั้น และในส่วนของ HTTP จะใช้ในการแสดงผลหน้าเว็บไซต์นั่นเอง
» เปลี่ยนชื่อ Security group name กับ Description เป็นชื่ออะไรก็ได้ เช่นtinnakorn-password-auth
» เปลี่ยน Type SSH ให้เป็น Source:My IP
» คลิกReview and Launch
Step 7: Review Instance Launch » คลิกLaunch
ในส่วนของ POPUP ให้ทำตามขั้นตอนนี้
» เปลี่ยน Choose an existing key pair ให้เป็นProceed without a key pair
แล้ว Select a key pair จะหายไป
» คลิก ☑ Checkbox
» คลิกLaunch Instances
ถ้ามีข้อความแจ้งเตือนสีเขียวเหมือนรูปภาพด้านล่างนี้ เท่ากับว่าการสร้าง Instance เสร็จสิ้น
จากนั้นให้คลิกView Instances
หลังจากสร้าง Instance เสร็จแล้ว ให้สังเกตคำว่า Status Checks จะเห็นว่ามีสถานะเป็น? Initializing
คือ Instance กำลังทำการสตาร์ทระบบขึ้นมานั่นเอง
เมื่อ Instance เริ่มต้นระบบเสร็จเรียบร้อยแล้ว จะมีสถานะเป็น✅ 2/2 checks passed
ทดสอบการ Login Server Amazon Linux 2
ขั้นตอนนี้จะลองทดสอบ Login เข้าใช้งาน Server Amazon Linux 2
สำหรับผู้ใช้งานที่ยังไม่เคยใช้โปรแกรม PuTTy สามารถ Download PuTTy ได้ที่นี่เลย หรือ ถ้าผู้ใช้งานมี PuTTy อยู่แล้ว ให้ข้ามขั้นตอนการดาวน์โหลดโปรแกรมไปได้เลย
การดาวน์โหลดและติดตั้งโปรแกรมควรเลือกให้ตรงกับระบบ Windows ของเรา เช่น ถ้าระบบ Windows ของเราเป็น 64-bit ก็ให้เลือกดาวน์โหลดเป็น64-bit x86
เป็นต้น ซึ่งในปัจจุบันนี้ 32-bit ก็ไม่ค่อยมีแล้ว หรือ อาจจะพบได้ในคอมพิวเตอร์รุ่นเก่าที่มีขนาด RAM ต่ำกว่า 4 GB นั่นเอง ทั้งนี้ทั้งนั้นเพื่อความชัวร์ !แนะนำให้ตรวจสอบระบบ Windows ของเราก่อนดาวน์โหลดและติดตั้งโปรแกรมจะดีที่สุดครับ
เมื่อเรามี PuTTy แล้วให้เปิดโปรแกรม PuTTy เตรียมไว้
แล้วไปที่หน้า EC2 Instance ของเราเพื่อคัดลอก Public IPv4 address มาใส่ใน Host Name ของ PuTTy
กลับมาที่หน้าโปรแกรม PuTTy แล้ววาง Public IPv4 address ของคุณลงใน Host Name (or IP address) และกดปุ่มOpen
ได้เลย
เลือกAccept
เมื่อเข้ามาหน้านี้แล้วให้ใส่ User และ Password ดังนี้
วิธีการใส่ก็คือให้ใส่ User ตามด้านล่างนี้ ตามด้วย Password ของเรา (ระหว่างที่พิมพ์ Password จะไม่แสดงตัวอักษรให้เห็น ให้พิมพ์ลงไปได้เลย !พิมพ์เท่านั้น เพราะไม่สามารถคัดลอกและวางได้)
login as: ec2-user ec2-user@18.140.196.171's password: your_password
เมื่อ login ได้แล้ว ทีนี้จะมาลองเข้าใช้งาน Server Amazon Linux 2 โดยการใช้สิทธิ์ root ดังนี้
เรียกใช้คำสั่งนี้เพื่อเปลี่ยน ec2-user ให้เป็นสิทธิ์ root
sudo su -
จะเห็นว่าสามารถใช้งานสิทธิ์ root ได้แล้ว ทีนี้เรามาตรวจสอบไฟล์ config ของ ssh กันครับ
ให้รันคำสั่งด้านล่างนี้เพื่อตรวจสอบการตั้งค่าของไฟล์ ssh (ถ้าต้องการให้หน้า terminal ว่างเหมือนในรูป สามารถรันคำสั่งclear
ก่อนคำสั่งด้านล่างนี้ได้เลย)
less /etc/ssh/sshd_config
เมื่อเข้ามาหน้านี้แล้ว พิมพ์คำว่า/Password
ลงไปได้เลย ตามด้วยกดปุ่ม Enter (ระหว่างพิมพ์ตัวอักษรจะปรากฎด้านล่างของ terminal ตามรูปภาพ)
เมื่อ Enter แล้วให้ดูที่PasswordAuthentication
จะเห็นว่ามีสถานะเป็นyes
ก็หมายความว่าสามารถเข้าใช้งาน Server โดยสิทธิ์ root ได้นั่นเอง
PasswordAuthentication yes
ถ้าต้องการออกจากหน้านี้ให้กดปุ่มq
เพียงเท่านี้ก็สามารถใช้งานจัดการระบบต่างๆใน Server โดยสิทธิ์ root ได้แล้ว
ข้อควรระวัง
โปรดใช้ความระมัดระวังกับ EC2 Instance ที่มีการตั้งค่านี้ เนื่องจากมีความเสี่ยงที่จะถูกโจมตีจาก Brute-force attack ซึ่งผู้ก่อการร้ายจะโจมตีด้วยวิธีการส่งรหัสผ่านหรือข้อความรหัสผ่านจำนวนมาก โดยหวังว่าจะคาดเดาได้อย่างถูกต้อง ดังนั้นต้องใช้วิธีการจำกัด IP Address ในการเข้าถึง Server เพื่อความปลอดภัยของคุณเอง
อ่านเพิ่มเติมได้ที่: Brute-force attack
สรุป
การสร้างรหัสผ่านเข้าสู่ระบบระหว่างทำการสร้าง EC2 Instance โดยใช้ UserData เป็นอีกวิธีหนึ่งที่สามารถ login เข้าใช้งาน Server Amazon Linux 2 ได้โดยไม่ต้องเข้าไปตั้งค่า หรือ Browse Key pair เข้ามาใน PuTTy เพื่อ login ให้ยุ่งยาก
เราสามารถกำหนดรหัสผ่านใน UserData ระหว่างทำการสร้าง EC2 Instance ได้อย่างง่ายดาย นอกจากนี้เรายังสามารถเข้าใช้งาน Server Amazon Linux 2 ในฐานะผู้ใช้ที่มีสิทธิ์ root ด้วย Password ของเราได้อีกด้วย